Skip to content

fix(local-asr): 下载弹窗全量目录 + 抖动/模糊修复 + HF 模型卡片 - #928

Merged
appergb merged 3 commits into
betafrom
feat/local-asr-dialog-fix
Aug 6, 2026
Merged

fix(local-asr): 下载弹窗全量目录 + 抖动/模糊修复 + HF 模型卡片#928
appergb merged 3 commits into
betafrom
feat/local-asr-dialog-fix

Conversation

@appergb

@appergb appergb commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

目标

修复模型下载弹窗的三个问题:左侧空列表死锁、弹窗上下抖动+画面模糊闪烁、右侧展示从 HF 实时抓取的模型卡片。

兼容性影响

  • 无破坏性变更;新增 Tauri 命令 local_asr_fetch_hf_card(macOS/Win 均注册,调用方按平台已有守卫)
  • 视觉变化:窗口入场动画去掉 blur(纯 opacity/transform);下载弹窗入场改非回弹曲线

测试

  • cargo test --manifest-path src-tauri/Cargo.toml945 passed(+5 新增:README 首段提取 ×3、描述截断 ×2)
  • npm run build:tsc + vite 通过
  • npm test:17 组前端契约全绿(exit 0)

主要改动

  1. 空列表死锁allSidebarEntries 三处循环去掉已下载过滤 → 弹窗展示全量目录;弹窗默认选中第一项;startDownloadFromDialog 回退到第一个未下载条目
  2. 抖动/模糊ol-window-enter 移除 filter: blur(8px).ol-winchrome will-change 去 filter;弹窗卡片动画 spring → --ol-motion-soft;弹窗打开期间暂停 3s 轮询(ref 守卫)
  3. HF 模型卡片:HF x-frame-options: DENY 无法 iframe 嵌入,改走 HF API —— 新增 fetch_hf_card(downloads/likes/cardData.summary,summary 缺失回退 README 首个非空段落,截断 280 字符)+ 前端弹窗右侧展示下载量/收藏数/简介

验证路径

macOS 实测:设置 → 高级 → 本地模型 → +下载新模型:弹窗不抖不模糊、左侧显示 Qwen3-ASR 0.6B/1.7B 可下载、右侧显示 HF 下载量/收藏/简介

sim added 3 commits August 6, 2026 05:32
- 下载弹窗左侧空列表死锁:allSidebarEntries 把未下载模型过滤掉了,
  零下载用户弹窗内无模型可选、开始下载禁用;改为全目录展示,弹窗
  默认选中第一项,开始下载回退到第一个未下载条目
- 弹窗上下抖动 + 画面模糊/清晰闪烁:ol-window-enter 去掉 filter blur
  (fill-mode both 保留终帧 + will-change:filter 在 WKWebView 反复重栅
  格化),WindowChrome willChange 去 filter;弹窗卡片动画 spring 过冲
  改 --ol-motion-soft;弹窗打开时暂停 3s 轮询,遮罩后看板不再跳动
- 右侧直接展示 HF 模型卡片(HF 禁止 iframe 嵌入):新增
  local_asr_fetch_hf_card 命令(downloads/likes/cardData.summary,
  summary 缺失回退 README 首段),弹窗右侧显示下载量/收藏数/简介
- 画面「闪一下又恢复」合成层根源:WindowChrome 根节点 backdrop-filter
  blur(36px) 在非透明窗口(--ol-window-bg 不透明渐变)是纯开销死代码,
  macOS WKWebView 切换模型/下载中高频重渲染时合成层故障 → 整窗瞬间
  消失恢复。全平台统一 none,视觉无变化
- 下载弹窗遮罩误关:busyModelId 在下载启动后即清空(Rust 同步返回),
  下载中 busy 恒 false → 点遮罩下的「下载与存储设置」落在遮罩上弹窗
  直接关闭,像被按了叉。新增 anyDownloadInFlight(progress phase 判定)
  驱动弹窗 busy 与「+下载新模型」禁用,下载中遮罩点击不关闭
- 切换闪烁:弹窗打开时预加载全部条目 HF 卡片(缓存),切换选项右侧
  直接出数据,无「加载中→内容」替换
- 弹窗左栏对齐设置页:rail 背景 + 200px 宽度,条目去掉外边框
@appergb
appergb merged commit 26f928c into beta Aug 6, 2026
4 checks passed
H-Chris233 added a commit to bigsongeth/openless that referenced this pull request Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant